home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / advancec.arc / BGS.ARC / MAIN.C < prev    next >
Text File  |  1992-01-24  |  3KB  |  125 lines

  1. /*
  2.     main.c
  3.  
  4.     test program for segmentation system
  5. */
  6.  
  7. #include        "defs.h"
  8.  
  9. void    main()
  10. {
  11. /* function returns to be moved to globals.h */
  12. seg_t   *cl_seg(), *rd_seg();
  13. vport_t *new_vport();
  14.  
  15. /* pointers to items */
  16. seg_t   *door, *window, *house, *city;
  17.  
  18. /* pointers to viewports */
  19. vport_t *vp1, *vp2, *vp3;
  20.  
  21. int     i, j, k;
  22.  
  23.     initialize();    /* graphics display */
  24.  
  25. /* create-window segment */
  26.  
  27.         cr_seg("window");
  28.         add_attr(RESET);
  29.         rect(10,10,60,80);
  30.         rect(10,00,60,90);
  31.         window = cl_seg();
  32.  
  33. /* create-door segment */
  34.  
  35.         cr_seg("door");
  36.         add_attr(RESET);
  37.         rect(10,0,100,270);
  38.         door = cl_seg();
  39.  
  40. /* create-house segment */
  41.  
  42.         cr_seg("house");
  43.  
  44.         add_attr(RESET);
  45.         rect(100,100,600,500);
  46.         begin_line();
  47.         con_point(50,480);
  48.         con_point(350,600);
  49.         con_point(650,480);
  50.         add_line(end_line());
  51.  
  52.         ref("window",150,300,NULL);
  53.         ref("window",250,300,NULL);
  54.         ref("window",350,300,NULL);
  55.  
  56.         text("House", 0, 0, LEFT , BOTTOM);
  57.  
  58.         ref("door",450,100,NULL);
  59.  
  60.     house = cl_seg();
  61.  
  62. /* create-city segment */
  63.  
  64.         cr_seg("city");
  65.  
  66.         add_attr(RESET);
  67.         ref("house",0,0,NULL);
  68.         ref("house",1000,00,NULL);
  69.         ref("house",0,700,NULL);
  70.         ref("house",1100,800,NULL);
  71.  
  72.         text("City Block", 0, -100, LEFT , BOTTOM);
  73.  
  74.  
  75.         city = cl_seg();
  76.  
  77. /* can write these segments to metafiles with */
  78.  
  79.     wr_seg(window);
  80.     wr_seg(door);
  81.     wr_seg(house);
  82.     wr_seg(city);
  83.  
  84. /* purge segments from memory */
  85.  
  86.     del_seg(window);
  87.     del_seg(door);
  88.     del_seg(house);
  89.     del_seg(city);
  90.  
  91. /* later read metafiles back into segments */
  92.  
  93.     window  = rd_seg("window");
  94.     door    = rd_seg("door");
  95.     house   = rd_seg("house");
  96.     city    = rd_seg("city");
  97.  
  98. /* draw segments in three different viewports */
  99.  
  100.  
  101.     /* set up viewports */
  102.     vp1 = new_vport(inst_rect(1, 1, 300, 500));
  103.     vp2 = new_vport(inst_rect(1, 500, 600, 799));
  104.     vp3 = new_vport(inst_rect(300, 1, 600, 500));
  105.  
  106.     /* assign segments to viewports */
  107.     set_vport_seg(vp1, window);
  108.     set_vport_seg(vp2, house);
  109.     set_vport_seg(vp3, city);
  110.  
  111.     /* draw segments in viewports */
  112.     draw_seg(window, vp1);
  113.     draw_seg(house, vp2);
  114.     draw_seg(city, vp3);
  115.  
  116.     for(j=0;j<100;j++)
  117.         {
  118.         pan_vport(vp2,5,5);
  119.         zoom_vport(vp3,-10,-10);
  120.         }
  121.  
  122.     sleep(10);
  123.     terminate();    /* graphics display */
  124. }
  125.